#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QPaintEvent> //用于绘画事件
#include<QtGui> //引入用到的控件

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->password->setEchoMode(QLineEdit::Password);;//密文输入
    //信号槽 某个界面指针，操作接口信号，主界面对象指针，数据库操作接口
    //用户界面指针 ，显示用户信息信号，主界面对象指针，查询接口
    //处理用户界面查询用户信息信号
    connect(&user,&userwindow::send_user_flush,this,MainWindow::sqlinfo);

    //处理注册界面退出登录信号
    connect(&register2,&register1::send_show_login,this,MainWindow::reshow);
    //处理用户界面退出登录信号
    connect(&user,&userwindow::send_show_login,this,MainWindow::reshow);
    //处理管理界面退出登录信号
    connect(&admin1,&admin::send_show_login,this,MainWindow::reshow);
    //处理管理界面刷新信息信号
    connect(&admin1,&admin::send_info_flush,this,MainWindow::sqlinfo);
    //处理停车查询
    // 时间段查询
    connect(&admin1, &admin::send_main_stopcx, this, &MainWindow::sqlcx);
    //车位查询
    connect(&admin1, &admin::send_main_stopcx1, this, &MainWindow::sqlcx1);
    connect(&admin1, &admin::send_main_stopinfoedit, this, &MainWindow::sqlcx2);
    connect(&admin1, &admin::send_main_stopinfocx, this, &MainWindow::sqlcx3);

}

MainWindow::~MainWindow()
{
    delete ui;
}

//登录按钮跳转到userinfo 后查询基本信息后显示到相应界面
void MainWindow::on_login_clicked()
{
    QString username = this->ui->username->text();
    QString password= this->ui->password->text();
    //qDebug() <<username<<password;
    //用户登录
    if(username.isEmpty() || password.isEmpty())
    {
        QMessageBox::warning(nullptr, QStringLiteral("错误"), QStringLiteral("账号密码不能为空"), QMessageBox::Yes);
    }
    else{
        QSqlQuery query;
        QString rightword,flag;
        QString id;//主键
        //sql查询密码和id
        QString str = QString("select password,id,flag from userinfo where username = '%1'").arg(username);
        query.exec(str);
        while(query.next())
        {
            rightword = query.value(0).toString();
            id = query.value(1).toString();
            flag = query.value(2).toString();
        }
        if(password == rightword){ //密码匹配正确
            if(flag=="管理员"){
                user_id = id;
                this->hide();//当前隐藏
                this->sqlinfo();//管理员信息页面显示信息 执行查询操作
                admin1.show();//跳转到管理界面
                ui->username->clear();
                ui->password->clear();
            }else{
                user_id = id;
                this->hide();//当前隐藏
                this->sqlinfo();//个人信息页面显示信息 执行查询操作
                user.show();//跳转到用户界面

                ui->username->clear();
                ui->password->clear();
            }
        }
        else{
            QMessageBox::warning(nullptr, QStringLiteral("错误"), QStringLiteral("账号密码错误"), QMessageBox::Yes);
            ui->username->clear();
            ui->password->clear();
        }
    }

}

void MainWindow::reshow(){

    this->show();
}
//注册按钮跳转到register页面
void MainWindow::on_register_2_clicked()
{
    this->hide();//当前隐藏
    register2.show();

}

//客户表操作接口 增删改查
void sqladd_admin(){

}//增加管理员

//查user_id用户信息后  在用户界面执行显示
void MainWindow::sqlinfo(){
    QString name,flag,carid,phone,email, register_time,username;
    QString start_time,stop_time;
    QString fare = 0;
    QSqlQuery query;
    QString inquire = QString("select * from userinfo where id = '%1'").arg(user_id);
    query.exec(inquire);
    //查询用户
    while(query.next()){
        name = query.value(1).toString();
        flag = query.value(2).toString();//用户类型
        carid = query.value(3).toString();//首辆车牌号
        phone = query.value(4).toString();
        email = query.value(5).toString();
        username = query.value(6).toString();//用户名用于查询拥有的汽车
        register_time=query.value(8).toString();//注册时间
        start_time=query.value(9).toString();//会员开始时间
        stop_time=query.value(10).toString();//会员结束时间
        fare=query.value(11).toString();
    }
    //用户界面显示个人信息接口
    if(flag=="管理员"){
    admin1.printinfo(user_id, name, flag, carid, phone, email, register_time,fare,username);
    }else{
    user.printinfo(user_id, name, flag, carid, phone, email, register_time,fare,username);
    }
}



//停车查询
void MainWindow::sqlcx(QDateTime statime, QDateTime endtime){


    admin1.printstop(statime,endtime);

}
void MainWindow::sqlcx1(QString parkingname){
   admin1.printstop1(parkingname);
}
void MainWindow::sqlcx2(QString placeid,QString statusid){
   admin1.updatestop(placeid,statusid);
}
void MainWindow::sqlcx3(){
    stopinfo1.show();
    stopinfo1.paint();
}

